home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / scope / 101-125 / scopedisk122 / checkmate / checkmate.bas < prev    next >
BASIC Source File  |  1995-03-19  |  16KB  |  855 lines

  1. CLEAR ,30000&
  2. BREAK ON
  3. MENU ON
  4. ON BREAK GOSUB Ender
  5. ON ERROR GOTO ErrorFix
  6. ON MENU GOSUB MenuCheck
  7. DEFDBL bal
  8.  
  9. DEF FNround(e)=INT(e*100+.5)/100
  10.  
  11. DIM SHARED amnt(300),type$(300),num(300),dt$(300),des$(300),X9(12)
  12.  
  13. fs$= "\       \ \      \  ###### $$###,###.##   \                                 \"
  14. tf$="ACCOUNT NUMBER: \          \      Date: \      \      Balance: $$#,###,###.##"
  15. path$=""
  16. bal=0:c=1:account$=""
  17. s$=STRING$(80," ")
  18. t$=STRING$(19," ")+"CheckMATE - ©1989 Control Point Software"
  19. t1$="  TYPE      DATE    NUMBER    AMOUNT                  DESCRIPTION"
  20. t2$="--------- --------  ------ ------------   -----------------------------------"
  21. ach$=""
  22.  
  23. SCREEN 1,640,200,3,2
  24. WINDOW 2,t$,(0,0)-(631,186),16,1
  25. WINDOW OUTPUT 2
  26. WINDOW CLOSE 1
  27. PALETTE 0,0,0,0
  28. PALETTE 1,.72,.72,.72
  29. PALETTE 2,.4,.5,1
  30. PALETTE 3,.93,.2,0
  31. PALETTE 4,0,.93,.87
  32. PALETTE 5,1,.13,.93
  33.  
  34. OPEN "S:CB.Config" FOR INPUT AS #1
  35. INPUT #1,path$
  36. CLOSE 1
  37.  
  38. MENU 1,0,1,"Information"
  39. MENU 1,1,1,"Set Path   "
  40. MENU 1,2,1,"About      "
  41.  
  42. Main:
  43.   WHILE 0=0
  44.     CLS
  45.     COLOR 1
  46.     PRINT STRING$(19," ")STRING$(40,"~")
  47.     COLOR 2
  48.     PRINT
  49.     PRINT 
  50.     PRINT TAB(10)"Account #: ";
  51.     COLOR 3
  52.     PRINT account$;
  53.     PRINT TAB(45);
  54.     COLOR 2
  55.     PRINT "Balance: ";
  56.     COLOR 3
  57.     PRINT USING"$$#,###,###.##";bal
  58.     COLOR 4
  59.     LOCATE 7,10
  60.     PRINT"1. Change Account Number"
  61.     LOCATE 8,10
  62.     PRINT"2. Change Current Balance"
  63.     LOCATE 9,10
  64.     PRINT"3. Enter Deposit"
  65.     LOCATE 10,10
  66.     PRINT"4. Enter Withdrawl"
  67.     LOCATE 11,10
  68.     PRINT"5. Display Transactions"
  69.     LOCATE 7,45
  70.     PRINT"6. Print Transactions"
  71.     LOCATE 8,45
  72.     PRINT"7. Modify Transaction"
  73.     LOCATE 9,45
  74.     PRINT"8. Balance Account"
  75.     LOCATE 10,45
  76.     PRINT"9. Print Check History"
  77.     LOCATE 11,45
  78.     PRINT"Q. Quit"
  79.     LOCATE 15,1
  80.     PRINT "Choice:_";:x$=""
  81.     WINDOW OUTPUT 2
  82.     WHILE x$=""
  83.       x$=INKEY$
  84.       SLEEP
  85.       IF sp=1 THEN x$="*"
  86.     WEND
  87.     IF x$="*" AND sp=1 THEN sp=0
  88.     PRINT CHR$(8);x$
  89.     x=VAL(x$)
  90.     IF UCASE$(x$)="Q" THEN Ender:
  91.     ON x GOSUB NewNum,ChBal,Dep,With,Display,PrintOut,EditIt,Balance,ChkHist
  92.   WEND
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99. 1 :
  100. NewNum:
  101.   GOSUB WriteFile:
  102.   CLS
  103.   can=0
  104.   WHILE can=0
  105.     PRINT :PRINT "Account Number:";
  106.     LINE INPUT account$
  107.     gs$=account$
  108.     GOSUB NumOnly
  109.     account$=rs$
  110.     CLOSE 1
  111.     ff=0
  112.     OPEN path$+account$ FOR INPUT AS #1
  113.     IF ff=1 THEN
  114.       PRINT "New Account [Y/N]:";
  115.       na$=""
  116.       WHILE na$=""
  117.         na$=INKEY$
  118.         SLEEP
  119.       WEND
  120.       IF UCASE$(na$)="Y" THEN
  121.         bal=0
  122.         can=1
  123.         CLOSE 1
  124.       ELSE
  125.         can=0
  126.       END IF
  127.     ELSE
  128.       CLOSE 1
  129.       GOSUB ReadFile
  130.       can=1
  131.     END IF
  132.   WEND
  133. RETURN
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140. 2 :
  141. ChBal:
  142.   CLS
  143.   PRINT :INPUT "New Balance:";bal$
  144.   gs$=bal$
  145.   GOSUB NumOnly
  146.   bal=FNround(VAL(rs$))
  147. RETURN
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154. 3 :
  155. Dep:
  156.   tran$="Deposit"
  157.   GOSUB DisplayScreen:
  158.   bal=bal+amnt(c)
  159.   type$(c)="Deposit"
  160.   c=c+1
  161. RETURN
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168. 4 :
  169. With:
  170.   tran$="Withdrawl"
  171.   GOSUB DisplayScreen:
  172.   bal=bal-amnt(c)
  173.   type$(c)="Withdrawl"
  174.   c=c+1
  175. RETURN
  176.     
  177.  
  178.  
  179.  
  180.  
  181.  
  182. 5 :
  183. Display:
  184.   CLS
  185.   PRINT t1$
  186.   PRINT t2$
  187.   FOR i=1 TO c-1
  188.     PRINT USING fs$;type$(i),dt$(i),num(i),amnt(i),des$(i)
  189.     IF i/18 = INT(i/18) THEN
  190.       PRINT 
  191.       PRINT "Press any key for next page...":ak$=""
  192.       WHILE ak$=""
  193.         ak$=INKEY$
  194.         SLEEP
  195.       WEND
  196.       CLS
  197.       PRINT t1$
  198.       PRINT t2$
  199.     END IF
  200.   NEXT
  201.   PRINT 
  202.   PRINT "Press any key to continue...":ak$=""
  203.   WHILE ak$=""
  204.     ak$=INKEY$
  205.     SLEEP
  206.   WEND
  207. RETURN
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215. 6 :
  216. PrintOut:
  217.   CLS
  218.   PRINT
  219.   COLOR 5
  220.   PRINT "Align paper and press any key..."
  221.   ak$=""
  222.   WHILE ak$=""
  223.     ak$=INKEY$
  224.     SLEEP
  225.   WEND 
  226.   PRINT
  227.   COLOR 3
  228.   PRINT "Please Wait..."
  229.   COLOR 1
  230.   LPRINT SPACE$(15)"* CheckMate v2.0   (c)1989 Sam Reynolds, Control Point Services *"
  231.   LPRINT ach$
  232.   LPRINT USING tf$;account$,DATE$,bal
  233.   LPRINT
  234.   LPRINT t1$
  235.   LPRINT t2$
  236.   FOR i=1 TO c-1
  237.     LPRINT USING fs$;type$(i),dt$(i),num(i),amnt(i),des$(i)
  238.     IF i/55 = INT(i/55) THEN
  239.       LPRINT CHR$(12);
  240.       LPRINT SPACE$(15)"* CheckMate v2.0   (c)1989 Sam Reynolds, Control Point Services *"
  241.       LPRINT ach$
  242.       LPRINT USING tf$;account$,DATE$,bal
  243.       LPRINT
  244.       LPRINT t1$
  245.       LPRINT t2$
  246.     END IF
  247.   NEXT
  248.   LPRINT CHR$(12);
  249. RETURN
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256. 7 :
  257. EditIt:
  258.   CLS
  259.   INPUT "Amount";amnt$
  260.   gs$=amnt$
  261.   GOSUB NumOnly
  262.   ckamt=FNround(VAL(rs$))
  263.   INPUT "Number";num$
  264.   gs$=num$
  265.   GOSUB NumOnly
  266.   num=VAL(rs$)
  267.   n=1:cts=1
  268.   WHILE cts=1
  269.     tff=0
  270.     FOR i=n TO c-1
  271.       IF ckamt=amnt(i) THEN
  272.         IF num(i)=num THEN tff=1:n=i:i=c-1
  273.       END IF
  274.     NEXT
  275.     IF tff=1 THEN
  276.       PRINT :PRINT :PRINT 
  277.       PRINT t1$
  278.       PRINT t2$
  279.       PRINT USING fs$;type$(n),dt$(n),num(n),amnt(n),des$(n)
  280.       PRINT
  281.       PRINT
  282.       PRINT "Correct [Y/N]:_";:ak$=""
  283.       WHILE ak$=""
  284.         ak$=INKEY$
  285.         SLEEP
  286.       WEND
  287.       PRINT ak$
  288.       IF UCASE$(ak$)="Y" THEN
  289.         cts=0
  290.         PRINT "Delete or Change it [D/C]:_";:ak$=""
  291.         WHILE ak$=""
  292.           ak$=INKEY$
  293.           SLEEP
  294.         WEND
  295.         PRINT ak$
  296.         IF UCASE$(ak$)="D" THEN
  297.           IF LEFT$(type$(n),1)="W" THEN
  298.             bal=bal+amnt(n)
  299.           ELSE
  300.             bal=bal-amnt(n)
  301.           END IF
  302.           FOR i=n TO c-2
  303.             type$(i)=type$(i+1)
  304.             num(i)=num(i+1)
  305.             dt$(i)=dt$(i+1)
  306.             amnt(i)=amnt(i+1)
  307.             des$(i)=des$(i+1)
  308.           NEXT
  309.           c=c-1:ff=0
  310.         ELSE
  311.           cc=c
  312.           c=n
  313.           IF LEFT$(type$(n),1)="W" THEN
  314.             bal=bal+amnt(n)
  315.             GOSUB With
  316.           ELSE
  317.             bal=bal-amnt(n)
  318.             GOSUB Dep
  319.           END IF
  320.           c=cc:ff=0
  321.         END IF
  322.       ELSE
  323.         n=n+1
  324.       END IF
  325.     ELSE
  326.       cts=0
  327.       PRINT
  328.       PRINT "Not found..."
  329.       PRINT 
  330.       PRINT "Press any key to continue..."
  331.       ak$=""
  332.       WHILE ak$=""
  333.         ak$=INKEY$
  334.         SLEEP
  335.       WEND
  336.     END IF
  337.   WEND
  338. RETURN          
  339.  
  340.   
  341.  
  342.  
  343.  
  344.  
  345. 8 :
  346. Balance:
  347.   CLS
  348.   PRINT 
  349.   LINE INPUT "Please enter your ending balance from your bank statement:";ebal$
  350.   gs$=ebal$
  351.   GOSUB NumOnly
  352.   ebal=FNround(VAL(rs$))
  353.   IF bal=ebal THEN
  354.     PRINT
  355.     COLOR 5
  356.     PRINT"Congrats!!!!!!!"
  357.     PRINT
  358.     COLOR 3
  359.     PRINT"You Balance!!!!"
  360.     PRINT
  361.     COLOR 1
  362.     PRINT "Press any key to continue..."
  363.     ak$=""
  364.     WHILE ak$=""
  365.       ak$=INKEY$
  366.       SLEEP
  367.     WEND
  368.     PRINT "Please Wait..."
  369.     OPEN path$+account$ FOR OUTPUT AS #1
  370.     PRINT#1,bal
  371.     CLOSE 1
  372. '********** To Check History Start **********
  373.     OPEN path$+account$+".HST" FOR APPEND AS #1
  374.     FOR i=1 TO c
  375.       PRINT#1,type$(i)
  376.       PRINT#1,num(i)
  377.       PRINT#1,dt$(i)
  378.       PRINT#1,amnt(i)
  379.       PRINT#1,des$(i)
  380.     NEXT i
  381.     CLOSE 1
  382. '********** To Check History End   **********
  383.     c=1
  384.   ELSE
  385.     OPEN path$+account$+".HST" FOR APPEND AS #1
  386.     i=1
  387.     WHILE i<>c
  388.       CLS
  389.       COLOR 1
  390.       PRINT t1$
  391.       PRINT t2$
  392.       COLOR 2
  393.       PRINT USING fs$;type$(i),dt$(i),num(i),amnt(i),des$(i)
  394.       PRINT
  395.       PRINT
  396.       COLOR 5
  397.       PRINT "Is this on your statement [Y/N]:";
  398.       COLOR 7
  399.       os$=""
  400.       WHILE os$=""
  401.         os$=INKEY$
  402.         SLEEP
  403.       WEND
  404.       PRINT os$:PRINT 
  405.       IF UCASE$(os$)="Y" THEN
  406. '********** To Check History Start **********
  407.         PRINT#1,type$(i)
  408.         PRINT#1,num(i)
  409.         PRINT#1,dt$(i)
  410.         PRINT#1,amnt(i)
  411.         PRINT#1,des$(i)
  412.         FOR j=i TO c-2
  413.           type$(j)=type$(j+1)
  414.           num(j)=num(j+1)
  415.           dt$(j)=dt$(j+1)
  416.           amnt(j)=amnt(j+1)
  417.           des$(j)=des$(j+1)
  418.         NEXT
  419.         c=c-1
  420. '********** To Check History End   **********
  421.       ELSE
  422.         IF LEFT$(type$(i),1)="W" THEN
  423.           ebal=ebal-amnt(i)
  424.         ELSE
  425.           ebal=ebal+amnt(i)
  426.         END IF
  427.         IF UCASE$(os$)<>"Y" THEN i=i+1
  428.       END IF
  429.     WEND
  430.     CLOSE 1
  431.     IF bal=ebal THEN
  432.       PRINT
  433.       COLOR 5
  434.       PRINT"Congrats!!!!!!!"
  435.       PRINT
  436.       COLOR 3
  437.       PRINT"You Balance!!!!"
  438.       PRINT
  439.       COLOR 1
  440.       PRINT "Press any key to continue..."
  441.       ak$=""
  442.       WHILE ak$=""
  443.         ak$=INKEY$
  444.         SLEEP
  445.       WEND
  446.     ELSE
  447.       PRINT
  448.       COLOR 3
  449.       PRINT"Sorry..."
  450.       PRINT
  451.       COLOR 5
  452.       PRINT "You dont balance..."
  453.       PRINT
  454.       COLOR 1
  455.       PRINT "If there are transactions on your statement that were not
  456.       PRINT "listed above enter (OR correct) them AND try again..."
  457.       PRINT
  458.       COLOR 7
  459.       PRINT "Press any key to continue..."
  460.       ak$=""
  461.       WHILE ak$=""
  462.         ak$=INKEY$
  463.         SLEEP
  464.       WEND
  465.     END IF
  466.     PRINT "Please Wait..."
  467.     GOSUB WriteFile
  468.   END IF
  469. RETURN      
  470.   
  471.   
  472. 10 
  473. ChkHist:
  474.   GOSUB WriteFile
  475.   CLS
  476.   PRINT
  477.   COLOR 3
  478.   PRINT "Please Wait..."
  479.   COLOR 1
  480.   OPEN path$+account$+".HST" FOR INPUT AS #1
  481.   c=1
  482.   WHILE NOT EOF(1)
  483.     LINE INPUT#1,type$(c)
  484.     INPUT#1,num(c)
  485.     LINE INPUT#1,dt$(c)
  486.     INPUT#1,amnt
  487.     amnt(c)=FNround(amnt)
  488.     LINE INPUT#1,des$(c)
  489.     c=c+1
  490.   WEND
  491.   CLOSE 1       
  492.   ach$=SPACE$(29)+"*** A c c o u n t   H i s t o r y ***"
  493.   GOSUB PrintOut
  494.   ach$=""
  495.   GOSUB ReadFile
  496. RETURN
  497.  
  498.  
  499.  
  500.  
  501.  
  502. Ender:
  503.   CLS
  504.   GOSUB WriteFile
  505. QuickEnd:
  506.   WINDOW CLOSE 2
  507.   SCREEN CLOSE 1
  508.   WINDOW 1
  509.   ON MENU GOSUB 0
  510.   ON BREAK GOSUB 0
  511.   MENU RESET
  512. END
  513.  
  514.   
  515.   
  516. '--------------------------------------------------------
  517. '-----            Subroutines Past Here!            -----
  518. '--------------------------------------------------------
  519.  
  520.  
  521. NumOnly:
  522.   rs$=""
  523.   FOR i=1 TO LEN(gs$)
  524.     ch$=MID$(gs$,i,1):ch=ASC(ch$)
  525.     IF ch=>48 AND ch<=57 OR ch=46 THEN rs$=rs$+ch$
  526.   NEXT
  527. RETURN
  528.  
  529.  
  530.  
  531.  
  532. ErrorFix:
  533.   IF ERR=53 AND ERL=1 THEN
  534.     ff=1
  535.     RESUME NEXT
  536.   END IF
  537.   IF ERL=9 THEN
  538.     pnff=1
  539.     RESUME NEXT
  540.   END IF
  541.   PRINT "ERROR #:"ERR"
  542.   PRINT :PRINT "Press any key..."
  543.   ak$=""
  544.   WHILE ak$=""
  545.     ak$=INKEY$
  546.     SLEEP
  547.   WEND
  548.   GOTO QuickEnd
  549.  
  550.  
  551.  
  552. ReadFile:
  553.   PRINT :PRINT :PRINT "Please Wait..."
  554.   OPEN path$+account$ FOR INPUT AS #1
  555.   c=1
  556.   INPUT#1,bal
  557.   WHILE NOT EOF(1)
  558.     LINE INPUT#1,type$(c)
  559.     INPUT#1,num(c)
  560.     LINE INPUT#1,dt$(c)
  561.     INPUT#1,amnt
  562.     amnt(c)=FNround(amnt)
  563.     LINE INPUT#1,des$(c)
  564.     c=c+1
  565.   WEND
  566.   CLOSE 1       
  567. RETURN
  568.  
  569.  
  570. WriteFile:
  571.   IF account$<>"" THEN
  572.     GOSUB SortFile
  573.     PRINT:PRINT:PRINT"                        Writing File..."
  574.     OPEN path$+account$ FOR OUTPUT AS #1
  575.     PRINT#1,FNround(bal)
  576.     IF c>1 THEN
  577.       FOR i=1 TO c-1
  578.         PRINT#1,type$(i)
  579.         PRINT#1,num(i)
  580.         PRINT#1,dt$(i)
  581.         PRINT#1,FNround(amnt(i))
  582.         PRINT#1,des$(i)
  583.       NEXT
  584.     END IF
  585.     CLOSE 1
  586.   END IF
  587. RETURN
  588.  
  589.  
  590. SortFile:
  591.   PRINT :PRINT :PRINT "    Please Wait...   Sorting..."
  592.   FOR i=1 TO c-1
  593.     FOR j=1 TO i
  594.       IF num(j) > num(i) THEN
  595.         SWAP type$(i),type$(j)
  596.         SWAP num(i),num(j)
  597.         SWAP dt$(i),dt$(j)
  598.         SWAP amnt(i),amnt(j)
  599.         SWAP des$(i),des$(j)
  600.       END IF
  601.     NEXT j
  602.   NEXT i
  603.   FOR i=1 TO c-1
  604.     FOR j=1 TO i
  605.       IF num(i) = num(j) THEN
  606.         IF dt$(j) > dt$(i) THEN
  607.           SWAP type$(i),type$(j)
  608.           SWAP num(i),num(j)
  609.           SWAP dt$(i),dt$(j)
  610.           SWAP amnt(i),amnt(j)
  611.           SWAP des$(i),des$(j)
  612.         END IF
  613.       END IF
  614.     NEXT j
  615.   NEXT i
  616.   FOR i=1 TO c-1
  617.     FOR j=1 TO i
  618.       IF num(i) = num(j) THEN
  619.         IF dt$(i) = dt$(j) THEN
  620.           IF amnt(j)>amnt(i) THEN
  621.             SWAP type$(i),type$(j)
  622.             SWAP num(i),num(j)
  623.             SWAP dt$(i),dt$(j)
  624.             SWAP amnt(i),amnt(j)
  625.             SWAP des$(i),des$(j)
  626.           END IF
  627.         END IF
  628.       END IF
  629.     NEXT j
  630.   NEXT i
  631. RETURN
  632.  
  633.  
  634. FindDate:
  635.   '************************************
  636.   '* Find Days Since Start of Century *
  637.   '*   Given X$=DATE, Return X=DAYS   *
  638.   '************************************
  639.   GOSUB SetDays
  640.   IF LEN(x$)<1 THEN GOTO ExitError
  641.   FOR X1=1 TO LEN(x$):'REPLACE SPACES WITH /'s
  642.     IF MID$(x$,X1,1)=" " THEN MID$(x$,X1,1)="/"
  643.     IF MID$(x$,X1,1)="." THEN MID$(x$,X1,1)="/"
  644.     IF MID$(x$,X1,1)="-" THEN MID$(x$,X1,1)="/"
  645.   NEXT X1
  646.   '------------------Get Month
  647.   GOSUB GetMDY
  648.   X1=x
  649.   IF X1>12 THEN GOTO ExitError
  650.   '------------------Get Day
  651.   GOSUB GetMDY
  652.   IF x<1 OR x>X9(X1) THEN GOTO ExitError: 'DAY ERR
  653.   X2=x
  654.   '------------------Get Year
  655.   GOSUB GetMDY
  656.   x=x*365.25
  657.   IF (x-INT(x))<>0 AND X1<3 THEN x=x+1
  658.   x=INT(x)-1+X2
  659.   FOR X2=0 TO (X1-1)
  660.     x=x+X9(X2)
  661.   NEXT X2
  662.  
  663.  
  664. FindGreg:
  665.   '***************************************************
  666.   '* Find Greg Date Corresponding to Days in Century *
  667.   '*     Given X=Days, Return X$=DATE, X1=YYMMDD     *
  668.   '***************************************************
  669.   GOSUB SetDays: 'BUILD DATE TABLE
  670.   '----------------------------- Determine Year
  671.   X1=INT(100*x/36525&)
  672.   X1=INT(X1*1000+.5)/1000
  673.   '----------------------------- Determine Days in Year
  674.   X2=x-INT(X1*365.25)
  675.   IF ((X1/4)-INT(X1/4))=0 OR X2>59 THEN X2=X2+1
  676.   '----------------------------- Determine Month
  677.   FOR X3=1 TO 12
  678.   IF X9(X3)>=X2 THEN xx=X3:X3=12:GOTO Finish
  679.   X2=X2-X9(X3)
  680.   Finish:
  681.   NEXT X3
  682.   X3=xx
  683.   x$=RIGHT$(STR$(X3),2)+"/"
  684.   x$=x$+RIGHT$(STR$(X2),2)+"/"
  685.   x$=x$+RIGHT$(STR$(X1),2)
  686.   FOR i=1 TO LEN(x$)
  687.     IF MID$(x$,i,1)=" " THEN
  688.       MID$(x$,i,1)="0"
  689.     END IF
  690.   NEXT i
  691.   X1=10000*X1+100*X3+X2
  692.   D9$="SUNDAY   MONDAY   TUESDAY  WEDNESDAYTHURSDAY FRIDAY   SATURDAY "
  693.   D9=(x/7)-INT(x/7)
  694.   D9$=MID$(D9$,INT(D9*7+.5)*9+1,9)
  695. RETURN
  696.   
  697. '====================================================================
  698.   
  699. GetMDY:
  700.   FLAG=1
  701.   WHILE FLAG=1
  702.     x=0:Y=Y+1
  703.     IF Y<=LEN(x$) THEN
  704.       xx=ASC(MID$(x$,Y,1))
  705.       IF xx=>48 AND xx<=57 THEN
  706.         x=VAL(CHR$(xx))
  707.         Y=Y+1
  708.         FLAG=0
  709.       END IF
  710.     ELSE
  711.       FLAG=0
  712.     END IF
  713.   WEND
  714.   IF Y<=LEN(x$) THEN
  715.     xx=ASC(MID$(x$,Y,1))
  716.     IF xx=>48 AND xx<=57 THEN
  717.       x=VAL(CHR$(xx))+10*x
  718.     END IF
  719.   END IF
  720. RETURN
  721.  
  722. SetDays:
  723.   'DIM X9(12)
  724.   Y=0:X9(1)=31:X9(2)=29:X9(3)=31:X9(4)=30:X9(5)=31:X9(6)=30:X9(7)=31:X9(8)=31:X9(9)=30:X9(10)=31:X9(11)=30:X9(12)=31
  725. RETURN
  726.  
  727. ExitError:
  728.    x=-1
  729. RETURN
  730.  
  731.  
  732. DisplayScreen:
  733.   ok$="N"
  734.   WHILE UCASE$(ok$)="N"
  735.     CLS
  736.     COLOR 4
  737.     PRINT "=======> ";
  738.     COLOR 2
  739.     PRINT tran$;
  740.     COLOR 4
  741.     PRINT " <======="
  742.     PRINT
  743.     PRINT
  744.     LOCATE 4,1
  745.     LINE INPUT "Amount: ";amnt$
  746.     gs$=amnt$
  747.     GOSUB NumOnly
  748.     amnt(c)=FNround(VAL(rs$))
  749.     LINE INPUT "Number: ";num$
  750.     gs$=num$
  751.     GOSUB NumOnly
  752.     num(c)=VAL(rs$)
  753.     des$(c)=STRING$(40,"*")
  754.     WHILE LEN(des$(c))>35 
  755.       LINE INPUT "Description (35 CHARS MAX): ";des$(c)
  756.     WEND
  757.     dt$(c)=LEFT$(DATE$,6)+RIGHT$(DATE$,2)
  758.     x=-1
  759.     WHILE x=-1
  760.       LOCATE 7,1
  761.       LINE INPUT "Date: ";x$
  762.       IF x$="" THEN x$=dt$(c)
  763.       GOSUB FindDate
  764.     WEND 
  765.     dt$(c)=x$
  766.     LOCATE 7,7:PRINT dt$(c)
  767.     LOCATE 12,1
  768.     PRINT"Okay [Y/N]:_";
  769.     ok$=""
  770.     WHILE ok$=""
  771.       ok$=INKEY$
  772.       SLEEP
  773.     WEND
  774.   WEND
  775. RETURN
  776.  
  777. MenuCheck:
  778.   dummy=MENU(0)
  779.   ON MENU(1) GOSUB SetPath,About
  780. RETURN
  781.  
  782.  
  783. 9 :
  784. SetPath:
  785.   pnff=1
  786.   CLS
  787.   WHILE pnff<>0
  788.     pnff=0
  789.     WINDOW OUTPUT 2
  790.     COLOR 4
  791.     PRINT
  792.     PRINT "Please enter the DRIVE:Path where Account info will be stored:"
  793.     WINDOW OUTPUT 2
  794.     COLOR 3
  795.     LINE INPUT path$
  796.     ck$=RIGHT$(path$,1)
  797.     IF ck$<>"/" AND ck$<>":" THEN path$=path$+"/"
  798.     OPEN path$+"!" FOR OUTPUT AS #5
  799.     CLOSE 5
  800.     IF pnff<>0 THEN
  801.       WINDOW OUTPUT 2
  802.       COLOR 2
  803.       PRINT "Invalid Drive/Path... Try Again..."
  804.       PRINT 
  805.     ELSE
  806.       KILL path$+"!"
  807.       OPEN "S:CB.Config" FOR OUTPUT AS #3
  808.       PRINT#3,path$
  809.       CLOSE 3
  810.     END IF
  811.   WEND
  812.   sp=1
  813. RETURN
  814.  
  815. About:
  816.   WINDOW 3,"",(39,20)-(598,160),18,1
  817.   WINDOW OUTPUT 3
  818.   COLOR 5
  819.   PRINT SPC(28)"CheckMate v2.0"
  820.   COLOR 4
  821.   PRINT SPC(21)"©1990 Control Point Services"
  822.   PRINT 
  823.   COLOR 1
  824.   PRINT SPC(21)"This Program is ";
  825.   COLOR 3
  826.   PRINT "SHAREWARE";
  827.   COLOR 1
  828.   PRINT "..."
  829.   PRINT SPC(16)"If you like it, use it, don't like it,"
  830.   PRINT PTAB(156)"or just have a comment, write to:"
  831.   PRINT 
  832.   COLOR 2
  833.   PRINT SPC(29)"Sam Reynolds"
  834.   PRINT SPC(24)"Control Point Services"
  835.   PRINT SPC(27)"1651 Bradford NE"
  836.   PRINT SPC(23)"Grand Rapids, MI   49503"
  837.   PRINT
  838.   COLOR 1
  839.   PRINT PTAB(52)"(Send $10 to the above address to become a ";
  840.   COLOR 3
  841.   PRINT "registered";
  842.   COLOR 1
  843.   PRINT " user."
  844.   PRINT SPC(9)"Registered users recieve upgrade notices and notices"
  845.   PRINT SPC(17)"of new programs when they come out!)"
  846.   PRINT 
  847.   PRINT PTAB(212)"[CLICK TO CONTINUE]";
  848.   dummy=MOUSE(0)
  849.   WHILE MOUSE(0)=0
  850.     SLEEP
  851.   WEND
  852.   WINDOW OUTPUT 2
  853.   WINDOW CLOSE 3
  854. RETURN
  855.